#ifndef STR_H
#define STR_H

#include "memory.h"
#include <stddef.h>

struct String {
  int mem_id;
  int length;
  char *s;
};

struct String init_string();
struct String str_append(struct Memory *mem, struct String dest, char *src);
int str_len(char *s);
int str_length(struct String str);
struct String str_copy(struct Memory *mem, struct String dest, char *src);
struct String str_catenate(struct Memory *mem, struct String dest, char *src);

#endif  // STR_H
